(define number-elements
    (lambda (lst)
        (if (null? lst) 
            `()
            (g 
                (list 0 (car lst))
                (number-elements (cdr lst))
            )
        )
    )
)


(define (g lst1 lst2)
    (set-index 0 (cons lst1 lst2))
)


(define (set-index n lst)
    (if (null? lst)
        `()
        (cons
            (list n (cadar lst))
            (set-index (+ n 1) (cdr lst))
        )
    )
)


(display
    (number-elements
        `(1 2 3 4 5)
    )
)
